{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import lightgbm as lgbm\n",
    "from lightgbm.sklearn import LGBMClassifier\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Monthly_Income</th>\n",
       "      <th>Loan_Amount_Applied</th>\n",
       "      <th>Loan_Tenure_Applied</th>\n",
       "      <th>Existing_EMI</th>\n",
       "      <th>Salary_Account_Missing</th>\n",
       "      <th>Loan_Amount_Submitted_Missing</th>\n",
       "      <th>Loan_Tenure_Submitted_Missing</th>\n",
       "      <th>Interest_Rate_Missing</th>\n",
       "      <th>Processing_Fee_Missing</th>\n",
       "      <th>EMI_Loan_Submitted_Missing</th>\n",
       "      <th>...</th>\n",
       "      <th>Employer_Name_Label</th>\n",
       "      <th>Mobile_Verified_Label</th>\n",
       "      <th>Var5_Label</th>\n",
       "      <th>Var1_Label</th>\n",
       "      <th>Device_Type_Label</th>\n",
       "      <th>Filled_Form_Label</th>\n",
       "      <th>Var2_Label</th>\n",
       "      <th>Source_Label</th>\n",
       "      <th>Var4_Label</th>\n",
       "      <th>Disbursed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20000</td>\n",
       "      <td>300000.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>8691</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>20</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>35000</td>\n",
       "      <td>200000.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>38689</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>15</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>22500</td>\n",
       "      <td>600000.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1833</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>20</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>20</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>35000</td>\n",
       "      <td>1000000.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>5698</td>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>20</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>20</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>100000</td>\n",
       "      <td>500000.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>25000.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>13513</td>\n",
       "      <td>6</td>\n",
       "      <td>9</td>\n",
       "      <td>20</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   Monthly_Income  Loan_Amount_Applied  Loan_Tenure_Applied  Existing_EMI  \\\n",
       "0           20000             300000.0                  5.0           0.0   \n",
       "1           35000             200000.0                  2.0           0.0   \n",
       "2           22500             600000.0                  4.0           0.0   \n",
       "3           35000            1000000.0                  5.0           0.0   \n",
       "4          100000             500000.0                  2.0       25000.0   \n",
       "\n",
       "   Salary_Account_Missing  Loan_Amount_Submitted_Missing  \\\n",
       "0                       0                              1   \n",
       "1                       0                              0   \n",
       "2                       0                              0   \n",
       "3                       0                              0   \n",
       "4                       0                              0   \n",
       "\n",
       "   Loan_Tenure_Submitted_Missing  Interest_Rate_Missing  \\\n",
       "0                              1                      1   \n",
       "1                              0                      0   \n",
       "2                              0                      1   \n",
       "3                              0                      1   \n",
       "4                              0                      1   \n",
       "\n",
       "   Processing_Fee_Missing  EMI_Loan_Submitted_Missing    ...      \\\n",
       "0                       1                           1    ...       \n",
       "1                       1                           0    ...       \n",
       "2                       1                           1    ...       \n",
       "3                       1                           1    ...       \n",
       "4                       1                           1    ...       \n",
       "\n",
       "   Employer_Name_Label  Mobile_Verified_Label  Var5_Label  Var1_Label  \\\n",
       "0                 8691                      3           0          20   \n",
       "1                38689                      6           5          15   \n",
       "2                 1833                      6           0          20   \n",
       "3                 5698                      6           2          20   \n",
       "4                13513                      6           9          20   \n",
       "\n",
       "   Device_Type_Label  Filled_Form_Label  Var2_Label  Source_Label  Var4_Label  \\\n",
       "0                  2                  7           6             4           1   \n",
       "1                  2                  7           6             4           3   \n",
       "2                  2                  7           1            20           1   \n",
       "3                  2                  7           1            20           3   \n",
       "4                  2                  7           1            12           3   \n",
       "\n",
       "   Disbursed  \n",
       "0          0  \n",
       "1          0  \n",
       "2          0  \n",
       "3          0  \n",
       "4          0  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读取数据\n",
    "train=pd.read_csv(\"FE_Train_org_1.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 87020 entries, 0 to 87019\n",
      "Data columns (total 21 columns):\n",
      "Monthly_Income                   87020 non-null int64\n",
      "Loan_Amount_Applied              87020 non-null float64\n",
      "Loan_Tenure_Applied              87020 non-null float64\n",
      "Existing_EMI                     87020 non-null float64\n",
      "Salary_Account_Missing           87020 non-null int64\n",
      "Loan_Amount_Submitted_Missing    87020 non-null int64\n",
      "Loan_Tenure_Submitted_Missing    87020 non-null int64\n",
      "Interest_Rate_Missing            87020 non-null int64\n",
      "Processing_Fee_Missing           87020 non-null int64\n",
      "EMI_Loan_Submitted_Missing       87020 non-null int64\n",
      "City_Label                       87020 non-null int64\n",
      "Employer_Name_Label              87020 non-null int64\n",
      "Mobile_Verified_Label            87020 non-null int64\n",
      "Var5_Label                       87020 non-null int64\n",
      "Var1_Label                       87020 non-null int64\n",
      "Device_Type_Label                87020 non-null int64\n",
      "Filled_Form_Label                87020 non-null int64\n",
      "Var2_Label                       87020 non-null int64\n",
      "Source_Label                     87020 non-null int64\n",
      "Var4_Label                       87020 non-null int64\n",
      "Disbursed                        87020 non-null int64\n",
      "dtypes: float64(3), int64(18)\n",
      "memory usage: 13.9 MB\n"
     ]
    }
   ],
   "source": [
    "train.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train=train['Disbursed']\n",
    "\n",
    "\n",
    "X_train=train.drop([\"Disbursed\"],axis=1)\n",
    "\n",
    "\n",
    "#特征名字\n",
    "feat_names=X_train.columns\n",
    " #稀疏矩阵\n",
    "from scipy.sparse import csr_matrix\n",
    "X_train=csr_matrix(X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "MAX_ROUNDS=10000\n",
    "from sklearn.model_selection import  StratifiedKFold\n",
    "\n",
    "kfold=StratifiedKFold(n_splits=3,shuffle=True,random_state=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 调参"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 7 candidates, totalling 21 fits\n",
      "[CV] num_leaves=130 ..................................................\n",
      "[CV] num_leaves=130 ..................................................\n",
      "[CV] num_leaves=130 ..................................................\n",
      "[CV] num_leaves=140 ..................................................\n",
      "[CV] ....... num_leaves=130, score=-0.12847486233536262, total=   9.0s\n",
      "[CV] num_leaves=140 ..................................................\n",
      "[CV] ....... num_leaves=130, score=-0.12734211494106634, total=  10.1s\n",
      "[CV] num_leaves=140 ..................................................\n",
      "[CV] ....... num_leaves=130, score=-0.12658443049462292, total=  10.6s\n",
      "[CV] num_leaves=150 ..................................................\n",
      "[CV] ....... num_leaves=140, score=-0.11976416969567741, total=  11.3s\n",
      "[CV] num_leaves=150 ..................................................\n",
      "[CV] ....... num_leaves=150, score=-0.11826556446967809, total=   7.4s\n",
      "[CV] num_leaves=150 ..................................................\n",
      "[CV] ....... num_leaves=140, score=-0.12359144056575298, total=  11.6s\n",
      "[CV] num_leaves=160 ..................................................\n",
      "[CV] ....... num_leaves=140, score=-0.12052609547515239, total=  10.7s\n",
      "[CV] num_leaves=160 ..................................................\n",
      "[CV] ....... num_leaves=150, score=-0.11847574807734151, total=  11.2s\n",
      "[CV] num_leaves=160 ..................................................\n",
      "[CV] ....... num_leaves=160, score=-0.11395904074726283, total=   9.3s\n",
      "[CV] num_leaves=170 ..................................................\n",
      "[CV] ....... num_leaves=150, score=-0.11549293747678921, total=  12.5s\n",
      "[CV] num_leaves=170 ..................................................\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  10 tasks      | elapsed:   33.2s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] ....... num_leaves=160, score=-0.11674743025316157, total=  12.4s\n",
      "[CV] num_leaves=170 ..................................................\n",
      "[CV] ....... num_leaves=160, score=-0.11546454251816272, total=  12.7s\n",
      "[CV] num_leaves=180 ..................................................\n",
      "[CV] ....... num_leaves=170, score=-0.11194478336150616, total=  11.8s\n",
      "[CV] num_leaves=180 ..................................................\n",
      "[CV] ........ num_leaves=170, score=-0.1147639557113467, total=  13.0s\n",
      "[CV] num_leaves=180 ..................................................\n",
      "[CV] ....... num_leaves=170, score=-0.11540707756021407, total=  14.9s\n",
      "[CV] num_leaves=190 ..................................................\n",
      "[CV] ....... num_leaves=180, score=-0.11397897693859597, total=  13.4s\n",
      "[CV] num_leaves=190 ..................................................\n",
      "[CV] ....... num_leaves=180, score=-0.11178842115885124, total=  12.3s\n",
      "[CV] num_leaves=190 ..................................................\n",
      "[CV] ........ num_leaves=180, score=-0.1141045415825531, total=  14.7s\n",
      "[CV] ........ num_leaves=190, score=-0.1096828679343451, total=  10.6s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  19 out of  21 | elapsed:  1.1min remaining:    6.7s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] ....... num_leaves=190, score=-0.11061466205039358, total=  13.1s\n",
      "[CV] ....... num_leaves=190, score=-0.11230081898837614, total=   6.9s\n",
      "0.11086611054514214\n",
      "{'num_leaves': 190}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  21 out of  21 | elapsed:  1.1min finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([-0.12746713, -0.12129387, -0.11741144, -0.11539037, -0.11403856,\n",
       "       -0.11329066, -0.11086611])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#num_leaves\n",
    "params={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.1,\n",
    "       #'num_leaves':60,\n",
    "        'maxdepth':7,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.7,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    " \n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)#样本不均衡，is_unbalance=True\n",
    "num_leaves_s=range(130,200,10)\n",
    "tuned_parameters=dict(num_leaves=num_leaves_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "n_leafs = len(num_leaves_s)\n",
    "\n",
    "x_axis = num_leaves_s\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'num_leaves' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "plt.show()\n",
    "test_means"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 5 candidates, totalling 15 fits\n",
      "[CV] num_leaves=200 ..................................................\n",
      "[CV] num_leaves=200 ..................................................\n",
      "[CV] num_leaves=200 ..................................................\n",
      "[CV] num_leaves=220 ..................................................\n",
      "[CV] ........ num_leaves=220, score=-0.1211876620887715, total=  11.0s\n",
      "[CV] num_leaves=220 ..................................................\n",
      "[CV] ....... num_leaves=200, score=-0.11157842953112904, total=  13.0s\n",
      "[CV] num_leaves=220 ..................................................\n",
      "[CV] ....... num_leaves=200, score=-0.11316078758154305, total=  13.8s\n",
      "[CV] num_leaves=240 ..................................................\n",
      "[CV] ....... num_leaves=200, score=-0.10794426435014802, total=  14.5s\n",
      "[CV] num_leaves=240 ..................................................\n",
      "[CV] ........ num_leaves=220, score=-0.1105579658530307, total=  12.1s\n",
      "[CV] num_leaves=240 ..................................................\n",
      "[CV] ....... num_leaves=220, score=-0.10903947674086537, total=  11.2s\n",
      "[CV] num_leaves=260 ..................................................\n",
      "[CV] ....... num_leaves=240, score=-0.11796671421488572, total=  14.3s\n",
      "[CV] num_leaves=260 ..................................................\n",
      "[CV] ....... num_leaves=240, score=-0.11899023910587893, total=  15.9s\n",
      "[CV] num_leaves=260 ..................................................\n",
      "[CV] ........ num_leaves=240, score=-1.6691134667981116, total=  13.5s\n",
      "[CV] num_leaves=280 ..................................................\n",
      "[CV] ....... num_leaves=260, score=-0.17123159653559145, total=  15.6s\n",
      "[CV] num_leaves=280 ..................................................\n",
      "[CV] ....... num_leaves=260, score=-0.12141617674482917, total=  17.6s\n",
      "[CV] num_leaves=280 ..................................................\n",
      "[CV] ....... num_leaves=260, score=-0.11581393269607924, total=  16.1s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  12 out of  15 | elapsed:   49.6s remaining:   12.4s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] ....... num_leaves=280, score=-0.35315397069985255, total=  14.7s\n",
      "[CV] ....... num_leaves=280, score=-0.12116700042358486, total=  13.4s\n",
      "[CV] ........ num_leaves=280, score=-2.4071738491980446, total=   8.6s\n",
      "0.11089450953998646\n",
      "{'num_leaves': 200}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  15 out of  15 | elapsed:   57.7s finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([-0.11089451, -0.11359521, -0.63534492, -0.13615471, -0.96048431])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#num_leaves\n",
    "params={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.1,\n",
    "       #'num_leaves':60,\n",
    "        'maxdepth':7,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.7,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    " \n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)\n",
    "num_leaves_s=range(200,300,20)\n",
    "tuned_parameters=dict(num_leaves=num_leaves_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "n_leafs = len(num_leaves_s)\n",
    "\n",
    "x_axis = num_leaves_s\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'num_leaves' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "plt.show()\n",
    "test_means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 'num_leaves': 200"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 4 candidates, totalling 12 fits\n",
      "[CV] maxdepth=5 ......................................................\n",
      "[CV] maxdepth=5 ......................................................\n",
      "[CV] maxdepth=5 ......................................................\n",
      "[CV] maxdepth=6 ......................................................\n",
      "[CV] ........... maxdepth=5, score=-0.11157842953112905, total=  11.4s\n",
      "[CV] maxdepth=6 ......................................................\n",
      "[CV] ........... maxdepth=5, score=-0.11316078758154277, total=  13.0s\n",
      "[CV] maxdepth=6 ......................................................\n",
      "[CV] ........... maxdepth=5, score=-0.10794426435014802, total=  13.5s\n",
      "[CV] maxdepth=7 ......................................................\n",
      "[CV] ........... maxdepth=6, score=-0.11157842953112906, total=  15.4s\n",
      "[CV] maxdepth=7 ......................................................\n",
      "[CV] ........... maxdepth=6, score=-0.10794426435014802, total=  11.9s\n",
      "[CV] maxdepth=7 ......................................................\n",
      "[CV] ........... maxdepth=7, score=-0.11157842953112906, total=  10.0s\n",
      "[CV] maxdepth=8 ......................................................\n",
      "[CV] ........... maxdepth=6, score=-0.11316078758154278, total=  14.0s\n",
      "[CV] maxdepth=8 ......................................................\n",
      "[CV] ........... maxdepth=7, score=-0.10794426435014802, total=  12.3s\n",
      "[CV] maxdepth=8 ......................................................\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done   8 out of  12 | elapsed:   29.6s remaining:   14.8s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] ........... maxdepth=8, score=-0.11316078758154277, total=   6.0s\n",
      "[CV] ........... maxdepth=8, score=-0.11157842953112905, total=  11.7s\n",
      "[CV] ........... maxdepth=7, score=-0.11316078758154277, total=  12.4s\n",
      "[CV] ............. maxdepth=8, score=-0.107944264350148, total=   9.9s\n",
      "0.11089450953998638\n",
      "{'maxdepth': 5}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  12 out of  12 | elapsed:   39.0s finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([-0.11089451, -0.11089451, -0.11089451, -0.11089451])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#maxdepth\n",
    "params={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.1,\n",
    "       'num_leaves':200,\n",
    "        #'maxdepth':7,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.7,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    "       \n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)\n",
    "maxdepth_s=range(5,9,1)\n",
    "tuned_parameters=dict(maxdepth=maxdepth_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "x_axis = maxdepth_s\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'maxdepth' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "plt.show()\n",
    "test_means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 'maxdepth': 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 5 candidates, totalling 15 fits\n",
      "[CV] min_data_in_leaf=15 .............................................\n",
      "[CV] min_data_in_leaf=15 .............................................\n",
      "[CV] min_data_in_leaf=15 .............................................\n",
      "[CV] min_data_in_leaf=16 .............................................\n",
      "[CV] ... min_data_in_leaf=16, score=-0.1133788859742424, total=  10.6s\n",
      "[CV] min_data_in_leaf=16 .............................................\n",
      "[CV] .. min_data_in_leaf=15, score=-0.11781168931843229, total=  11.9s\n",
      "[CV] min_data_in_leaf=16 .............................................\n",
      "[CV] .. min_data_in_leaf=15, score=-0.12144682992483212, total=  12.7s\n",
      "[CV] min_data_in_leaf=17 .............................................\n",
      "[CV] .. min_data_in_leaf=15, score=-0.13582728375588068, total=  15.1s\n",
      "[CV] min_data_in_leaf=17 .............................................\n",
      "[CV] .. min_data_in_leaf=16, score=-0.11230526520443096, total=   8.8s\n",
      "[CV] min_data_in_leaf=17 .............................................\n",
      "[CV] ... min_data_in_leaf=16, score=-0.1489696333591318, total=  11.2s\n",
      "[CV] min_data_in_leaf=18 .............................................\n",
      "[CV] .. min_data_in_leaf=17, score=-0.11627880521232875, total=  10.9s\n",
      "[CV] min_data_in_leaf=18 .............................................\n",
      "[CV] .. min_data_in_leaf=17, score=-0.11032126044496156, total=  11.4s\n",
      "[CV] min_data_in_leaf=18 .............................................\n",
      "[CV] ... min_data_in_leaf=17, score=-0.1384798233513702, total=  12.2s\n",
      "[CV] min_data_in_leaf=19 .............................................\n",
      "[CV] .. min_data_in_leaf=18, score=-0.10888747936619315, total=  10.9s\n",
      "[CV] min_data_in_leaf=19 .............................................\n",
      "[CV] .. min_data_in_leaf=18, score=-0.11203242140033427, total=  13.1s\n",
      "[CV] min_data_in_leaf=19 .............................................\n",
      "[CV] .. min_data_in_leaf=18, score=-0.11987276247232112, total=  10.3s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  12 out of  15 | elapsed:   39.6s remaining:    9.9s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] ... min_data_in_leaf=19, score=-0.1300983070625923, total=   9.4s\n",
      "[CV] .. min_data_in_leaf=19, score=-0.11146808607886872, total=   8.9s\n",
      "[CV] .. min_data_in_leaf=19, score=-0.11042042521227859, total=   8.1s\n",
      "0.11359751844114964\n",
      "{'min_data_in_leaf': 18}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  15 out of  15 | elapsed:   47.3s finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([-0.12502844, -0.12488433, -0.12169317, -0.11359752, -0.11732923])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#min_data_in_leaf\n",
    "params={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.1,\n",
    "       'num_leaves':200,\n",
    "       'maxdepth':5,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.7,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    "       #'min_data_in_leaf':20\n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)\n",
    "min_data_in_leaf_s=range(15,20,1)\n",
    "tuned_parameters=dict(min_data_in_leaf=min_data_in_leaf_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "x_axis = min_data_in_leaf_s\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'min_data_in_leaf' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "plt.show()\n",
    "test_means\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 'min_data_in_leaf': 18"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 5 candidates, totalling 15 fits\n",
      "[CV] colsample_bytree=0.5 ............................................\n",
      "[CV] colsample_bytree=0.5 ............................................\n",
      "[CV] colsample_bytree=0.5 ............................................\n",
      "[CV] colsample_bytree=0.6 ............................................\n",
      "[CV] . colsample_bytree=0.5, score=-0.11856221331047354, total=  11.7s\n",
      "[CV] colsample_bytree=0.6 ............................................\n",
      "[CV] . colsample_bytree=0.5, score=-0.11404966002818652, total=  12.4s\n",
      "[CV] colsample_bytree=0.6 ............................................\n",
      "[CV] . colsample_bytree=0.5, score=-0.11081567815594004, total=  12.9s\n",
      "[CV] colsample_bytree=0.7 ............................................\n",
      "[CV] .. colsample_bytree=0.6, score=-0.1146160259756532, total=  14.1s\n",
      "[CV] colsample_bytree=0.7 ............................................\n",
      "[CV] . colsample_bytree=0.7, score=-0.10888747936619315, total=  11.3s\n",
      "[CV] colsample_bytree=0.7 ............................................\n",
      "[CV] . colsample_bytree=0.6, score=-0.13448135192330912, total=  13.7s\n",
      "[CV] colsample_bytree=0.8 ............................................\n",
      "[CV] . colsample_bytree=0.7, score=-0.11203242140033423, total=  14.2s\n",
      "[CV] colsample_bytree=0.8 ............................................\n",
      "[CV] .. colsample_bytree=0.6, score=-0.1146397024909799, total=  17.6s\n",
      "[CV] colsample_bytree=0.8 ............................................\n",
      "[CV] . colsample_bytree=0.8, score=-0.12233813178360098, total=  11.4s\n",
      "[CV] colsample_bytree=0.9 ............................................\n",
      "[CV] . colsample_bytree=0.7, score=-0.11987276247232106, total=  12.9s\n",
      "[CV] colsample_bytree=0.9 ............................................\n",
      "[CV] . colsample_bytree=0.8, score=-0.24154296815625867, total=  13.9s\n",
      "[CV] colsample_bytree=0.9 ............................................\n",
      "[CV] .... colsample_bytree=0.8, score=-1.45006953866209, total=  15.7s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  12 out of  15 | elapsed:   48.1s remaining:   12.0s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] . colsample_bytree=0.9, score=-0.11989967542887628, total=  12.3s\n",
      "[CV] .. colsample_bytree=0.9, score=-0.1351459763893332, total=  12.8s\n",
      "[CV] . colsample_bytree=0.9, score=-0.11518029444101817, total=  10.6s\n",
      "0.11359751844114961\n",
      "{'colsample_bytree': 0.7}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  15 out of  15 | elapsed:   55.1s finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([-0.11447594, -0.12124554, -0.11359752, -0.60463913, -0.12340857])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#colsample_bytree\n",
    "params={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.1,\n",
    "       'num_leaves':200,\n",
    "       'maxdepth':5,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.7,\n",
    "       'bagging_freq':1,\n",
    "       #'colsample_bytree':0.7,\n",
    "       'min_data_in_leaf':18\n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)\n",
    "colsample_bytree_s=[i/10.0 for i in range(5,10)]\n",
    "tuned_parameters=dict(colsample_bytree=colsample_bytree_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "x_axis = colsample_bytree_s\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'colsample_bytree' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "plt.show()\n",
    "test_means"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 5 candidates, totalling 15 fits\n",
      "[CV] subsample=0.5 ...................................................\n",
      "[CV] subsample=0.5 ...................................................\n",
      "[CV] subsample=0.5 ...................................................\n",
      "[CV] subsample=0.6 ...................................................\n",
      "[CV] .......... subsample=0.5, score=-7.723485455757935, total=  12.7s\n",
      "[CV] subsample=0.6 ...................................................\n",
      "[CV] ......... subsample=0.5, score=-2.8661976604653527, total=  13.5s\n",
      "[CV] subsample=0.6 ...................................................\n",
      "[CV] .......... subsample=0.5, score=-4.212095358103598, total=  14.0s\n",
      "[CV] subsample=0.7 ...................................................\n",
      "[CV] ........ subsample=0.6, score=-0.16078888533832278, total=  14.8s\n",
      "[CV] subsample=0.7 ...................................................\n",
      "[CV] ........ subsample=0.7, score=-0.10888747936619315, total=  10.9s\n",
      "[CV] subsample=0.7 ...................................................\n",
      "[CV] ........ subsample=0.6, score=-0.11981030489894502, total=  12.6s\n",
      "[CV] subsample=0.8 ...................................................\n",
      "[CV] ........ subsample=0.6, score=-0.11423597372010025, total=  15.6s\n",
      "[CV] subsample=0.8 ...................................................\n",
      "[CV] ........ subsample=0.7, score=-0.11203242140033426, total=  14.6s\n",
      "[CV] subsample=0.8 ...................................................\n",
      "[CV] ........ subsample=0.7, score=-0.11987276247232108, total=  13.3s\n",
      "[CV] subsample=0.9 ...................................................\n",
      "[CV] ........ subsample=0.8, score=-0.10432801358201362, total=  15.1s\n",
      "[CV] subsample=0.9 ...................................................\n",
      "[CV] ........ subsample=0.8, score=-0.10560306010962164, total=  16.0s\n",
      "[CV] subsample=0.9 ...................................................\n",
      "[CV] ........ subsample=0.8, score=-0.12659288737765498, total=  16.8s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  12 out of  15 | elapsed:   48.6s remaining:   12.1s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] ........ subsample=0.9, score=-0.10418260388718048, total=  13.1s\n",
      "[CV] ........ subsample=0.9, score=-0.10233813416528154, total=  12.1s\n",
      "[CV] ........ subsample=0.9, score=-0.10593457180186662, total=  10.2s\n",
      "0.10415177066010609\n",
      "{'subsample': 0.9}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  15 out of  15 | elapsed:   57.9s finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([-4.93387864, -0.13161239, -0.11359752, -0.11217447, -0.10415177])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#subsample\n",
    "params={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.1,\n",
    "       'num_leaves':200,\n",
    "       'maxdepth':5,\n",
    "       'max_bin':127,\n",
    "       #'subsample':0.7,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    "       'min_data_in_leaf':18\n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)\n",
    "subsample_s=[i/10.0 for i in range(5,10)]\n",
    "tuned_parameters=dict(subsample=subsample_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "x_axis = subsample_s\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'subsample' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "plt.show()\n",
    "test_means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 'subsample': 0.9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 7 candidates, totalling 21 fits\n",
      "[CV] learning_rate=1e-07 .............................................\n",
      "[CV] learning_rate=1e-07 .............................................\n",
      "[CV] learning_rate=1e-07 .............................................\n",
      "[CV] learning_rate=2.1544346900318822e-06 ............................\n",
      "[CV]  learning_rate=2.1544346900318822e-06, score=-0.0763471929300133, total=  10.6s\n",
      "[CV] learning_rate=2.1544346900318822e-06 ............................\n",
      "[CV] .. learning_rate=1e-07, score=-0.07641518596036469, total=  11.1s\n",
      "[CV] learning_rate=2.1544346900318822e-06 ............................\n",
      "[CV] .. learning_rate=1e-07, score=-0.07627446705618159, total=  14.0s\n",
      "[CV] learning_rate=4.641588833612772e-05 .............................\n",
      "[CV] .. learning_rate=1e-07, score=-0.07627440586228093, total=  15.6s\n",
      "[CV] learning_rate=4.641588833612772e-05 .............................\n",
      "[CV]  learning_rate=2.1544346900318822e-06, score=-0.07621013370167345, total=  10.9s\n",
      "[CV] learning_rate=4.641588833612772e-05 .............................\n",
      "[CV]  learning_rate=2.1544346900318822e-06, score=-0.07620893410079937, total=  14.6s\n",
      "[CV] learning_rate=0.001 .............................................\n",
      "[CV]  learning_rate=4.641588833612772e-05, score=-0.07503009940133723, total=  11.6s\n",
      "[CV] learning_rate=0.001 .............................................\n",
      "[CV]  learning_rate=4.641588833612772e-05, score=-0.07508308180911728, total=  13.8s\n",
      "[CV] learning_rate=0.001 .............................................\n",
      "[CV]  learning_rate=4.641588833612772e-05, score=-0.07498915768519276, total=  13.6s\n",
      "[CV] learning_rate=0.021544346900318822 ..............................\n",
      "[CV] .. learning_rate=0.001, score=-0.07247060161402162, total=  14.3s\n",
      "[CV] learning_rate=0.021544346900318822 ..............................\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  10 tasks      | elapsed:   42.4s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] .. learning_rate=0.001, score=-0.07303541336003065, total=  13.1s\n",
      "[CV] learning_rate=0.021544346900318822 ..............................\n",
      "[CV] .. learning_rate=0.001, score=-0.07233053778912048, total=  13.1s\n",
      "[CV] learning_rate=0.46415888336127725 ...............................\n",
      "[CV]  learning_rate=0.46415888336127725, score=-3.4576877644744424, total=   3.3s\n",
      "[CV] learning_rate=0.46415888336127725 ...............................\n",
      "[CV]  learning_rate=0.46415888336127725, score=-14.196271085770208, total=   3.6s\n",
      "[CV] learning_rate=0.46415888336127725 ...............................\n",
      "[CV]  learning_rate=0.021544346900318822, score=-0.14461865870364296, total=  14.1s\n",
      "[CV] learning_rate=10.0 ..............................................\n",
      "[CV]  learning_rate=0.46415888336127725, score=-16.225104018377333, total=   3.4s\n",
      "[CV] learning_rate=10.0 ..............................................\n",
      "[CV] .... learning_rate=10.0, score=-0.5513604124730754, total=   1.9s\n",
      "[CV] learning_rate=10.0 ..............................................\n",
      "[CV] .... learning_rate=10.0, score=-1.6083467660084039, total=   1.0s\n",
      "[CV] .... learning_rate=10.0, score=-2.0017353586662803, total=   1.1s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  19 out of  21 | elapsed:   55.5s remaining:    5.8s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV]  learning_rate=0.021544346900318822, score=-0.14664775133894467, total=  13.8s\n",
      "[CV]  learning_rate=0.021544346900318822, score=-0.14478385545046224, total=  14.2s\n",
      "0.07261218100036562\n",
      "{'learning_rate': 0.001}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  21 out of  21 | elapsed:   57.3s finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([ -0.07632136,  -0.07625542,  -0.07503411,  -0.07261218,\n",
       "        -0.14535007, -11.29284088,  -1.3871283 ])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#learning_rate\n",
    "params={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "      # 'learning_rate':0.1,\n",
    "       'num_leaves':200,\n",
    "       'maxdepth':5,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.9,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    "       'min_data_in_leaf':18\n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)\n",
    "learning_rate_s=np.logspace(-7,1,7)\n",
    "tuned_parameters=dict(learning_rate=learning_rate_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "\n",
    "x_axis = np.log10(learning_rate_s)\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'log(learning_rate)' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "plt.show()\n",
    "test_means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 'learning_rate': 0.001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 10 candidates, totalling 30 fits\n",
      "[CV] n_estimators=100 ................................................\n",
      "[CV] n_estimators=100 ................................................\n",
      "[CV] n_estimators=100 ................................................\n",
      "[CV] n_estimators=110 ................................................\n",
      "[CV] ..... n_estimators=110, score=-0.10231940133912715, total=  10.0s\n",
      "[CV] n_estimators=110 ................................................\n",
      "[CV] ..... n_estimators=100, score=-0.10418260388718048, total=  10.7s\n",
      "[CV] n_estimators=110 ................................................\n",
      "[CV] ..... n_estimators=100, score=-0.10233813416528154, total=  10.8s\n",
      "[CV] n_estimators=120 ................................................\n",
      "[CV] ..... n_estimators=100, score=-0.10593457180186662, total=  13.0s\n",
      "[CV] n_estimators=120 ................................................\n",
      "[CV] ..... n_estimators=110, score=-0.10086802358647057, total=  12.1s\n",
      "[CV] n_estimators=120 ................................................\n",
      "[CV] ..... n_estimators=110, score=-0.10408100964267772, total=  11.7s\n",
      "[CV] n_estimators=130 ................................................\n",
      "[CV] ..... n_estimators=120, score=-0.10067554038523856, total=  16.8s\n",
      "[CV] n_estimators=130 ................................................\n",
      "[CV] ...... n_estimators=120, score=-0.1001881947473545, total=  17.0s\n",
      "[CV] n_estimators=130 ................................................\n",
      "[CV] ..... n_estimators=120, score=-0.10260462318025812, total=  14.6s\n",
      "[CV] n_estimators=140 ................................................\n",
      "[CV] ..... n_estimators=130, score=-0.09992464949178088, total=  14.9s\n",
      "[CV] n_estimators=140 ................................................\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  10 tasks      | elapsed:   40.3s\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[CV] ..... n_estimators=130, score=-0.09982666182620745, total=  18.1s\n",
      "[CV] n_estimators=140 ................................................\n",
      "[CV] ..... n_estimators=130, score=-0.10190513396265802, total=  18.9s\n",
      "[CV] n_estimators=150 ................................................\n",
      "[CV] ..... n_estimators=140, score=-0.10026218250978064, total=  16.1s\n",
      "[CV] n_estimators=150 ................................................\n",
      "[CV] ..... n_estimators=140, score=-0.09962483048147902, total=  17.8s\n",
      "[CV] n_estimators=150 ................................................\n",
      "[CV] ..... n_estimators=140, score=-0.10155443120563157, total=  16.6s\n",
      "[CV] n_estimators=160 ................................................\n",
      "[CV] ...... n_estimators=150, score=-0.1015721638048348, total=  12.0s\n",
      "[CV] n_estimators=160 ................................................\n",
      "[CV] ..... n_estimators=150, score=-0.09956252356081356, total=  20.4s\n",
      "[CV] n_estimators=160 ................................................\n",
      "[CV] ..... n_estimators=150, score=-0.10085252512844319, total=  20.0s\n",
      "[CV] n_estimators=170 ................................................\n",
      "[CV] ..... n_estimators=160, score=-0.10147590998791248, total=  15.3s\n",
      "[CV] n_estimators=170 ................................................\n",
      "[CV] ...... n_estimators=160, score=-0.1002379130658495, total=  21.2s\n",
      "[CV] n_estimators=170 ................................................\n",
      "[CV] ..... n_estimators=160, score=-0.10195513767323476, total=  15.6s\n",
      "[CV] n_estimators=180 ................................................\n",
      "[CV] ..... n_estimators=170, score=-0.10083882323643263, total=  21.9s\n",
      "[CV] n_estimators=180 ................................................\n",
      "[CV] ..... n_estimators=170, score=-0.10287188981486513, total=  21.6s\n",
      "[CV] n_estimators=180 ................................................\n",
      "[CV] ..... n_estimators=170, score=-0.10262380319905434, total=  23.4s\n",
      "[CV] n_estimators=190 ................................................\n",
      "[CV] ..... n_estimators=180, score=-0.10208985489912854, total=  24.5s\n",
      "[CV] n_estimators=190 ................................................\n",
      "[CV] ..... n_estimators=180, score=-0.10392196975467126, total=  24.9s\n",
      "[CV] n_estimators=190 ................................................\n",
      "[CV] ..... n_estimators=180, score=-0.10403232523878804, total=  24.6s\n",
      "[CV] ..... n_estimators=190, score=-0.10556096233787428, total=  23.9s\n",
      "[CV] ..... n_estimators=190, score=-0.10333308639671177, total=  28.1s\n",
      "[CV] ..... n_estimators=190, score=-0.10529065320373443, total=  15.5s\n",
      "0.10048046173334854\n",
      "{'n_estimators': 140}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Done  30 out of  30 | elapsed:  2.4min remaining:    0.0s\n",
      "[Parallel(n_jobs=-1)]: Done  30 out of  30 | elapsed:  2.4min finished\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "/home/liu/anaconda3/lib/python3.7/site-packages/sklearn/utils/deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array([-0.10415177, -0.10242281, -0.10115611, -0.10055213, -0.10048046,\n",
       "       -0.10066238, -0.10122296, -0.10211148, -0.10334802, -0.1047282 ])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#n_estimators\n",
    "pparams={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "      #  'n_estimators':100,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.001,\n",
    "       'num_leaves':200,\n",
    "       'maxdepth':5,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.9,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    "       'min_data_in_leaf':18\n",
    "       }\n",
    "lg=LGBMClassifier(solent=False,**params,is_unbalance=True)\n",
    "n_estimators_s=range(100,200,10)\n",
    "tuned_parameters=dict(n_estimators=n_estimators_s)\n",
    "\n",
    "grid_search=GridSearchCV(lg,n_jobs=-1,param_grid=tuned_parameters,cv=kfold,scoring=\"neg_log_loss\",verbose=5,refit=False)\n",
    "grid_search.fit(X_train,y_train)\n",
    "# examine the best model\n",
    "print(-grid_search.best_score_)\n",
    "print(grid_search.best_params_)\n",
    "\n",
    "# plot CV误差曲线\n",
    "test_means = grid_search.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid_search.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid_search.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid_search.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "\n",
    "x_axis = n_estimators_s\n",
    "plt.plot(x_axis, -test_means)\n",
    "#plt.errorbar(x_axis, -test_means, yerr=test_stds,label = ' Test')\n",
    "#plt.errorbar(x_axis, -train_means, yerr=train_stds,label = ' Train')\n",
    "plt.xlabel( 'n_estimators' )\n",
    "plt.ylabel( 'Log Loss' )\n",
    "\n",
    "plt.show()\n",
    "test_means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 'n_estimators': 140"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LGBMClassifier(bagging_freq=1, boosting_type='gbdt', class_weight=None,\n",
       "        colsample_bytree=0.7, importance_type='split', is_unbalance=True,\n",
       "        learning_rate=0.1, max_bin=127, max_depth=-1, maxdepth=5,\n",
       "        min_child_samples=20, min_child_weight=0.001, min_data_in_leaf=18,\n",
       "        min_split_gain=0.0, n_estimators=100, n_jobs=-1, num_leaves=200,\n",
       "        objective='binary', random_state=None, reg_alpha=0.0,\n",
       "        reg_lambda=0.0, silent=False, subsample=0.9,\n",
       "        subsample_for_bin=200000, subsample_freq=0)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#最优参数全部训练\n",
    "pparams={'boosting_type':'gbdt',\n",
    "       'objective':'binary',\n",
    "        'n_estimators':140,\n",
    "       'n_jobs':-1,\n",
    "       'learning_rate':0.001,\n",
    "       'num_leaves':200,\n",
    "       'maxdepth':5,\n",
    "       'max_bin':127,\n",
    "       'subsample':0.9,\n",
    "       'bagging_freq':1,\n",
    "       'colsample_bytree':0.7,\n",
    "       'min_data_in_leaf':18\n",
    "       }\n",
    "lg = LGBMClassifier(silent=False,  **params,is_unbalance=True)\n",
    "lg.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pickle\n",
    "pickle.dump(lg, open(\"Risk_LightGBM_gbdt.pkl\", 'wb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame({\"columns\":list(feat_names), \"importance\":list(lg.feature_importances_.T)})\n",
    "df = df.sort_values(by=['importance'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>columns</th>\n",
       "      <th>importance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Employer_Name_Label</td>\n",
       "      <td>4089</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Monthly_Income</td>\n",
       "      <td>2851</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>City_Label</td>\n",
       "      <td>2331</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Existing_EMI</td>\n",
       "      <td>2110</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>Var5_Label</td>\n",
       "      <td>2090</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Loan_Amount_Applied</td>\n",
       "      <td>1493</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Loan_Tenure_Applied</td>\n",
       "      <td>1074</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>Var1_Label</td>\n",
       "      <td>965</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>Source_Label</td>\n",
       "      <td>893</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>Var4_Label</td>\n",
       "      <td>540</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>Var2_Label</td>\n",
       "      <td>527</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>Filled_Form_Label</td>\n",
       "      <td>221</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Loan_Amount_Submitted_Missing</td>\n",
       "      <td>187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Interest_Rate_Missing</td>\n",
       "      <td>122</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>Device_Type_Label</td>\n",
       "      <td>99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Processing_Fee_Missing</td>\n",
       "      <td>84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Mobile_Verified_Label</td>\n",
       "      <td>81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Salary_Account_Missing</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Loan_Tenure_Submitted_Missing</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>EMI_Loan_Submitted_Missing</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          columns  importance\n",
       "11            Employer_Name_Label        4089\n",
       "0                  Monthly_Income        2851\n",
       "10                     City_Label        2331\n",
       "3                    Existing_EMI        2110\n",
       "13                     Var5_Label        2090\n",
       "1             Loan_Amount_Applied        1493\n",
       "2             Loan_Tenure_Applied        1074\n",
       "14                     Var1_Label         965\n",
       "18                   Source_Label         893\n",
       "19                     Var4_Label         540\n",
       "17                     Var2_Label         527\n",
       "16              Filled_Form_Label         221\n",
       "5   Loan_Amount_Submitted_Missing         187\n",
       "7           Interest_Rate_Missing         122\n",
       "15              Device_Type_Label          99\n",
       "8          Processing_Fee_Missing          84\n",
       "12          Mobile_Verified_Label          81\n",
       "4          Salary_Account_Missing          60\n",
       "6   Loan_Tenure_Submitted_Missing          51\n",
       "9      EMI_Loan_Submitted_Missing          32"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df#特征重要性"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "雇主名字，月收入和城市这三个比较重要，也比较符合常识"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
